package playerdal

import (
	"fmt"

	"public.com/goutil/logUtil"

	"7qule.com/sd3/CrossServer/src/dal"
	"7qule.com/sd3/CrossServer/src/model/redisKey"
	"github.com/garyburd/redigo/redis"
)

// 获取所有玩家Key列表
// 返回值：
// 玩家Key集合
// 是否存在
// 错误对象
func GetAllPlayerKey() ([]string, bool, error) {
	conn := dal.GetRedisPool().GetConnection()
	defer conn.Close()

	reply, err := conn.Do("KEYS", fmt.Sprintf("%s*", redisKey.PlayerPrefix))
	if err != nil {
		if err == redis.ErrNil {
			return nil, false, nil
		} else {
			logUtil.Log(fmt.Sprintf("从Redis中获取玩家Keys出错1，错误信息为：%s", err), logUtil.Error, true)
			return nil, false, err
		}
	}

	keys, err := redis.Strings(reply, err)
	if err != nil {
		if err == redis.ErrNil {
			return nil, false, nil
		} else {
			logUtil.Log(fmt.Sprintf("从Redis中获取玩家Keys出错2，错误信息为：%s", err), logUtil.Error, true)
			return nil, false, err
		}
	}

	return keys, true, nil
}
